import re
from typing import Optional

class GetURL:
    
    def extract_url(self, text: str) -> Optional[str]:
        """从文本中提取抖音分享链接"""
        # 增强正则表达式匹配以下情况：
        # 1. 包含中文符号的链接（如中文冒号）
        # 2. 链接前后有特殊字符的情况
        pattern = r"(?i)https?://(?:v\.douyin\.com|www\.iesdouyin\.com)/[^\s\uff1a\u201c\u201d]+"
        match = re.search(pattern, text)
        return match.group(0).strip('"“”') if match else None

    def run_extract(self, url: str) -> Optional[str]:
        # 新增链接清洗步骤
        clean_url = self.extract_url(url)  # 先提取合法链接
        if not clean_url:
            print("未找到有效的抖音分享链接")
            return
        return clean_url


if __name__ == "__main__":
    text = """
    1.76 02/07 f@b.Nj dAt:/ 修表老师傅沉浸式全拆卸解说名表维修全过程 # 手表 # 名表维修保养 # 手表维修 # 积家 # 机械表  https://v.douyin.com/JHvQ-GS-Izs/ 复制此链接，打开Dou音搜索，直接观看视频！
    """
    extractor = GetURL().run_extract(text)
    print(extractor)
